package com.dengdai.applibrary.task;

import android.os.Handler;
import android.os.Message;

/**
 * @说明 数据下载线程
 * @作者 LY
 * @文件 TaskThread.java
 * @时间 2015年6月12日 下午1:59:21
 * @版权 Copyright(c) 2014 LY-版权所有
 */
public class TaskThread extends Thread {
    /**
     * 下载单位.
     */
    public TaskItem item = null;
    /**
     * 下载完成后的消息句柄.
     */
    private static Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            TaskItem item = (TaskItem) msg.obj;
            item.listener.update();
        }
    };

    /**
     * 构造下载线程队列.
     */
    public TaskThread() {
    }

    /**
     * 开始一个下载任务.
     *
     * @param item 下载单位
     */
    public void execute(TaskItem item) {
        this.item = item;
        item.listener.pre();
        this.start();
    }

    /**
     * 描述：线程运行.
     */
    @Override
    public void run() {
        if (item != null) {
            // 定义了回调
            if (item.listener != null) {
                item.listener.get();
            }
        }
    }

    public void update(Object object) {
        // 交由UI线程处理
        Message msg = handler.obtainMessage();
        item.setResult(object);
        msg.obj = item;
        handler.sendMessage(msg);
    }

}
